Apply for Zend Framework Certification Training

Zend Framework 1




                                       Zend GET Parameters 

PHP Style 

As you may know in PHP you can access everything in the request uri by accessing the
 global $_GET array. If there is something like that in the browser’s address field:
 www.example.com/index.php?controller=index&action=test, you can simply get the values by that:
             echo $_GET['controller']; // this will print "index"
             echo $_GET['action'];     // this will print "test"

Zend Framework, Uri & Request Params 

If you code with Zend Framework, you should know already, and that’s perhaps the first thing
 you’ve learned about Zend, that $_GET params can be accessed by calling the requrest’s
 getParam() method. But first of all the request uri will be different. The Zend’s convetion is to
 place after the domain name first the module name (which is omited when there’s only one 
module), than the controller’s name followed by the action and the key value pairs of all parameters.
 In that scheme the request uri above will look like that:
http://www.example.com/index/test
Here the keywords “controller” and “action” are omitted. This is cool – it’s more user friendly and
 it definitely helps the SEO.

Get the $_GET

Once the uri is setup like so – /index/test you can access it via the Zend way:
echo $this->getRequest()->getParam('controller'); // this will print "index"

The cool thing is that in the first case you don’t have any prevention of a missing value, 
while in the second case there is a second parameter or the getParam() method that does
 this job. What if the uri is www.example.com/index.php?controller=&action=test than by 
printing the $_GET['controller'] you’ll get nothing. In other hand even this:
echo $this->getRequest()->getParam('action');
won’t return “test” if the uri is http://www.example.com/index/

Note: actually here the default “index” action will be referenced!
That’s where the power of the framework comes. In the first case the solution is:
echo (empty($_GET['controller']) ? 'default': $_GET['controller']);
while in Zend there’s more elegant solution:
echo $this->getRequest()->getParam('action', 'test');
Thus when the action param is missing the “test” value is considered as default! Very useful!  

if you want to get parameter from url  Post variable 
        $this->getRequest()->getParam('id'); 
but the url structure will  be http://localhost/project/controller/method/id/12
 It will print 12

$this->getRequest()->getParams(); //Retrieves all parameters sent
$this->getRequest()->getPost(); //Retrieves the post array

And if you want to get param values from below url:

http://localhost/controller/test/value1/value2

then go for Zend Route. Try below code:

routes.activate.type = "Zend_Controller_Router_Route"
routes.activate.route = "action/:param1/:param2"
routes.activate.defaults.module = "core"
routes.activate.defaults.controller = "controller"
routes.activate.defaults.action = "test"                                    

< First Zend framework 1 structure >



Ask a question



  • Question:
    {{questionlistdata.blog_question_description}}
    • Answer:
      {{answer.blog_answer_description  }}
    Replay to Question


Back to Top